Дневная сводка: python libr — 2026-06-19
Два поста канала: одна тонкая техническая деталь о поведении аргументов по умолчанию в Python и рекомендация русскоязычного учебника от основ до продвинутых тем.
Ключевые события и темы
func.defaults: ловушка изменяемых аргументов по умолчанию
Значения аргументов по умолчанию вычисляются один раз при определении функции и хранятся в кортеже func.__defaults__ — это приводит к тому, что изменяемые объекты (списки, словари) разделяются между всеми вызовами. Тот же механизм можно использовать намеренно для раннего связывания в лямбда-замыканиях внутри циклов (lambda x, n=n: x + n). Тема критична для понимания области видимости и жизненного цикла объектов.
def foo(x, lst=[]):
lst.append(x)
return lst
print(foo(1)) # [1]
print(foo(2)) # [1, 2] — список не сбрасывается!
Ссылки:
Книга «Python. Полное руководство»
Анонс русскоязычного учебника, построенного по принципу «от простого к сложному»: первая часть — переменные, типы данных, множества, генераторы, итераторы, модули; вторая — ООП, метапрограммирование, многопоточность, документирование и оптимизация. Подходит как для начинающих, так и для систематизации знаний.
Ссылки:
Итог
Небольшой, но полезный день: одна практическая ловушка языка, на которой часто обжигаются даже опытные разработчики, плюс рекомендация структурированного учебника на русском. Оба материала ориентированы на углубление понимания Python, а не на новости экосистемы.